Skip to content

Docs: improve docs narrative around "ENSNode Plugins", "ENSDb Writers", and "ENSDb Readers".#2227

Open
tk-o wants to merge 13 commits into
mainfrom
docs/improve-ensdb-writer-reader-ensnode-plugins
Open

Docs: improve docs narrative around "ENSNode Plugins", "ENSDb Writers", and "ENSDb Readers".#2227
tk-o wants to merge 13 commits into
mainfrom
docs/improve-ensdb-writer-reader-ensnode-plugins

Conversation

@tk-o
Copy link
Copy Markdown
Member

@tk-o tk-o commented May 30, 2026

This PR is a followup to PR #2199, and PR #2202, and addresses the "Big Feedback" (point 11. and 17.) section the doc discussed in this thread, as well as the feedback shared in this thread.

Copilot AI review requested due to automatic review settings May 30, 2026 14:00
@tk-o tk-o requested a review from a team as a code owner May 30, 2026 14:00
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented May 30, 2026

⚠️ No Changeset found

Latest commit: 8e6910f

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented May 30, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
enskit-react-example.ensnode.io Ready Ready Preview, Comment May 30, 2026 2:35pm
ensnode.io Ready Ready Preview, Comment May 30, 2026 2:35pm
2 Skipped Deployments
Project Deployment Actions Updated (UTC)
admin.ensnode.io Skipped Skipped May 30, 2026 2:35pm
ensrainbow.io Skipped Skipped May 30, 2026 2:35pm

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 30, 2026

Review Change Stack

Warning

Review limit reached

@tk-o, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 26 minutes and 48 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 32336467-46fa-4315-abd1-2bdcdd6c2d02

📥 Commits

Reviewing files that changed from the base of the PR and between 2e61b46 and 8e6910f.

📒 Files selected for processing (8)
  • docs/ensnode.io/config/integrations/starlight/sidebar-topics/services.ts
  • docs/ensnode.io/src/content/docs/docs/integrate/integration-options/ensdb-readers.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/integration-options/ensdb-writers.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/integration-options/ensdb.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/integration-options/ensnode-plugins.mdx
  • docs/ensnode.io/src/content/docs/docs/services/ensdb/concepts/glossary.mdx
  • docs/ensnode.io/src/content/docs/docs/services/ensdb/index.mdx
  • docs/ensnode.io/src/content/docs/docs/services/ensindexer/contributing/creating-a-plugin.mdx
📝 Walkthrough

Walkthrough

This PR comprehensively refactors the ENSNode documentation to clarify the integration architecture by establishing three core concepts: ENSDb Writers (indexing applications like ENSIndexer and Envio), ENSDb Readers (query APIs like ENSApi), and ENSNode Plugins (data model specifications). ENSIndexer is repositioned as a reference implementation of an ENSDb Writer.

Changes

ENSDb & ENSNode Plugins Architecture

Layer / File(s) Summary
Sidebar Navigation Configuration
docs/ensnode.io/config/integrations/starlight/sidebar-topics/integrate.ts, services.ts
Starlight sidebar configuration updated to expose new integration entries (ENSDb Writers, ENSDb Readers, ENSNode Plugins) and service navigation items under ENSIndexer's Contributing section.
ENSDb Writers & Readers Foundation Pages
docs/.../integration-options/ensdb-writers.mdx, ensdb-readers.mdx
Two new documentation pages introduce ENSDb Writers (indexing responsibilities, responsibility checklist, examples: ENSIndexer, Envio, Amp) and ENSDb Readers (query patterns, standards-compliant options: ENSApi, ensdb-cli, ENSEngine, and invitation to build custom readers).
ENSNode Plugins Specification
docs/.../integration-options/ensnode-plugins.mdx
New documentation page explains ENSNode Plugins as the data model specification for indexing ENS namespace aspects into ENSDb, lists core plugins (Registrars, Subgraph, tokenscope) and community plugins (efp), and includes build-your-own guidance.
Integration Options Index Reorganization
docs/.../integration-options/index.mdx, ensdb.mdx
Main integration options page restructured to add ENSDb Writers, ENSDb Readers, and ENSNode Plugins sections with appropriate LinkCards; existing entries (enscli, ensskills, ensdb-cli, ENSEngine) renumbered accordingly. ENSDb page clarified to describe the standard's metadata writer specification role.
Service Documentation & Shared Terminology
docs/.../services/ensindexer/index.mdx, contributing/creating-a-plugin.mdx, services/ensdb/index.mdx, concepts/glossary.mdx
ENSIndexer overview repositioned as an ENSDb Writer reference implementation. Plugin creation guide rewritten to describe how ENSIndexer implements ENSNode Plugins via PLUGINS environment variable and plugin structure. ENSDb overview updated with new component imports and content. Glossary expanded with new terminology (ENSDb Metadata Writer, ENSNode Plugin) and refined definitions for Writer, Metadata Writer, and Reader; metadata context description refocused on ENSDb Writer instances.
Cross-Document Reference Updates
docs/.../omnigraph/concepts.mdx, unigraph/schema-reference.mdx, integrate/ensv2-readiness.mdx
Technical references updated to describe unigraph as an ENSNode Plugin (separately linked from ENSIndexer implementation), and terminology aligned across Omnigraph, Unigraph, and ENSv2 readiness pages.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • namehash/ensnode#2112: Modifies the same integrateSidebarTopic sidebar configuration with additional "Integration Options" entries.
  • namehash/ensnode#2120: Updates the same docs/.../integration-options/index.mdx documentation page, extending "Integration Options" with ENSDb-related entries.
  • namehash/ensnode#2051: Introduces the original Starlight sidebar configuration modules now being extended by this PR.

Suggested labels

docs


🐰 A rabbit's ode to clearer docs:
Docs now shine with structure bright,
Writers, Readers, Plugins in sight!
ENSIndexer's role laid plain,
Knowledge flows like spring's clear rain.
Order blooms where chaos was—
Better docs, no need to pause! 📚✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description is incomplete against the template: it lacks a proper Summary section (bullets), Why section with clear justification, Testing section, and pre-review checklist. Only references to related PRs and Slack threads are provided without structured context. Restructure the description following the template: add a Summary (1-3 bullets of what changed), Why section explaining the motivation, Testing section, and complete the Pre-Review Checklist to clarify risk level and changesets.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: improving documentation narrative around three key concepts (ENSNode Plugins, ENSDb Writers, ENSDb Readers), which aligns with the file changes showing new pages and sidebar updates for these topics.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/improve-ensdb-writer-reader-ensnode-plugins

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 30, 2026

Greptile Summary

This PR improves the documentation narrative around three key ENSNode concepts — ENSNode Plugins, ENSDb Writers, and ENSDb Readers — by adding dedicated integration guide pages for each and updating cross-references throughout the docs to use consistent canonical terminology.

  • Three new pages added (ensnode-plugins.mdx, ensdb-writers.mdx, ensdb-readers.mdx) with sidebar entries; existing pages in omnigraph/concepts.mdx, unigraph/schema-reference.mdx, ensv2-readiness.mdx, and the ENSIndexer contributing guide are updated to link to the new canonical pages.
  • The glossary gains definitions for ENSNode Plugin and ENSDb Metadata Writer, and the ENSDb Writer / ENSDb Reader definitions are expanded to reflect the decoupled architecture.
  • EnsDbReader/EnsDbWriter casing is corrected to ENSDb Reader/ENSDb Writer throughout the SDK section of the glossary.

Confidence Score: 5/5

Pure documentation change with no runtime code modified; safe to merge.

All changes are documentation and sidebar configuration. New pages link to pages that already exist in the repo. The two findings are copy-accuracy nits that do not affect site build or navigation.

docs/ensnode.io/src/content/docs/docs/services/ensdb/concepts/glossary.mdx — the new ENSDb Reader definition uses "the sole ENSDb Writer", which conflicts with the multi-tenant design described in the same file.

Important Files Changed

Filename Overview
docs/ensnode.io/src/content/docs/docs/integrate/integration-options/ensnode-plugins.mdx New page defining the ENSNode Plugin specification with a clear table of core plugins and community plugin section; all internal links resolve correctly.
docs/ensnode.io/src/content/docs/docs/integrate/integration-options/ensdb-writers.mdx New page documenting ENSDb Writers with ENSIndexer and Envio as implementations; contains a minor grammar error on line 8 ("how … looks like").
docs/ensnode.io/src/content/docs/docs/integrate/integration-options/ensdb-readers.mdx New page listing ENSDb Reader implementations (ENSApi, ensdb-cli, ENSEngine, ENSAnalytics); all target pages exist and links resolve correctly.
docs/ensnode.io/src/content/docs/docs/services/ensdb/concepts/glossary.mdx Adds ENSNode Plugin, ENSDb Metadata Writer definitions and updates ENSDb Reader definition; "the sole ENSDb Writer" phrase on line 68 contradicts the multi-tenant design described elsewhere in the same file.
docs/ensnode.io/config/integrations/starlight/sidebar-topics/integrate.ts Adds three new sidebar entries for ENSDb Writers, ENSDb Readers, and ENSNode Plugins pointing to the correct new page paths.
docs/ensnode.io/config/integrations/starlight/sidebar-topics/services.ts Renames sidebar label from "Creating a Plugin" to "Creating an ENSNode Plugin" to align with updated terminology.
docs/ensnode.io/src/content/docs/docs/services/ensindexer/contributing/creating-a-plugin.mdx Retitled from "Creating a Plugin" to "ENSNode Plugins in ENSIndexer"; redirects readers to the new canonical ENSNode Plugins integration guide.
docs/ensnode.io/src/content/docs/docs/integrate/integration-options/index.mdx Adds sections 5–7 for ENSDb Writers, ENSDb Readers, and ENSNode Plugins; renumbers existing sections 5–8 to 8–11 correctly.
docs/ensnode.io/src/content/docs/docs/services/ensdb/index.mdx Replaces inline EnsDbUseCases component with a LinkCard pointing to the ensdb integration options page; removes unused import.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    EP["ENSNode Plugin\n(abstract spec)"]
    EW["ENSDb Writer\ne.g. ENSIndexer, Envio"]
    ER["ENSDb Reader\ne.g. ENSApi, ENSEngine"]
    EMW["ENSDb Metadata Writer\n(part of ENSDb Writer)"]
    EDB[("ENSDb Instance\n(PostgreSQL)")]

    EP -->|implemented by| EW
    EW -->|writes indexed data| EDB
    EMW -->|writes metadata| EDB
    EW -->|includes| EMW
    ER -->|reads data + metadata| EDB
Loading

Reviews (4): Last reviewed commit: "Fix sidebar link desc" | Re-trigger Greptile

Comment thread docs/ensnode.io/src/content/docs/docs/services/ensdb/concepts/glossary.mdx Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refines the documentation narrative around ENSNode Plugins, ENSDb Writers, and ENSDb Readers, positioning ENSIndexer/ENSApi explicitly as reference implementations and adding dedicated integration-option pages to explain the architecture and interoperability model.

Changes:

  • Reframes ENSIndexer docs to describe it as an ENSDb Writer reference implementation and clarifies how it implements ENSNode Plugins.
  • Expands the ENSDb glossary with definitions for ENSNode Plugin and ENSDb Metadata Writer, and updates related metadata terminology.
  • Adds new integration-option pages for ENSDb Writers, ENSDb Readers, and ENSNode Plugins, and links them from the integration options index + sidebar.

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
docs/ensnode.io/src/content/docs/docs/services/ensindexer/index.mdx Repositions ENSIndexer as a reference ENSDb Writer and links to glossary terminology.
docs/ensnode.io/src/content/docs/docs/services/ensindexer/contributing/creating-a-plugin.mdx Renames/reframes the page to explain ENSNode Plugins and ENSIndexer’s plugin implementation structure.
docs/ensnode.io/src/content/docs/docs/services/ensdb/index.mdx Updates “What you can build” section to point readers to integration inspirations.
docs/ensnode.io/src/content/docs/docs/services/ensdb/concepts/glossary.mdx Adds/updates key definitions (ENSNode Plugin, ENSDb Writer/Reader, Metadata Writer) and metadata terminology.
docs/ensnode.io/src/content/docs/docs/integrate/unigraph/schema-reference.mdx Updates wording/links to refer to Unigraph as an ENSNode Plugin implemented in ENSIndexer.
docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/concepts.mdx Updates wording/links to refer to Unigraph as an ENSNode Plugin implemented in ENSIndexer.
docs/ensnode.io/src/content/docs/docs/integrate/integration-options/index.mdx Adds new top-level integration options for Writers/Readers/Plugins and renumbers subsequent sections.
docs/ensnode.io/src/content/docs/docs/integrate/integration-options/ensnode-plugins.mdx New page describing the ENSNode Plugin specification and listing core/community plugins.
docs/ensnode.io/src/content/docs/docs/integrate/integration-options/ensdb.mdx Adds paragraph explaining ENSDb’s metadata spec and links to Writers/Readers pages.
docs/ensnode.io/src/content/docs/docs/integrate/integration-options/ensdb-writers.mdx New page describing the ENSDb Writer spec and reference/partner implementations.
docs/ensnode.io/src/content/docs/docs/integrate/integration-options/ensdb-readers.mdx New page describing the ENSDb Reader spec and reference reader apps.
docs/ensnode.io/src/content/docs/docs/integrate/ensv2-readiness.mdx Updates wording/links to refer to Unigraph as an ENSNode Plugin implemented in ENSIndexer.
docs/ensnode.io/config/integrations/starlight/sidebar-topics/services.ts Renames the ENSIndexer contributing sidebar item to “ENSNode Plugins”.
docs/ensnode.io/config/integrations/starlight/sidebar-topics/integrate.ts Adds sidebar entries for Writers/Readers/Plugins integration-option pages.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/ensnode.io/src/content/docs/docs/services/ensdb/index.mdx Outdated
Comment thread docs/ensnode.io/src/content/docs/docs/services/ensdb/concepts/glossary.mdx Outdated
Comment thread docs/ensnode.io/src/content/docs/docs/services/ensdb/concepts/glossary.mdx Outdated
Comment thread docs/ensnode.io/src/content/docs/docs/services/ensdb/concepts/glossary.mdx Outdated
Comment thread docs/ensnode.io/src/content/docs/docs/services/ensdb/concepts/glossary.mdx Outdated
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 7

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@docs/ensnode.io/src/content/docs/docs/integrate/integration-options/ensdb-readers.mdx`:
- Around line 44-47: The LinkCard for "Learn more about ENSAnalytics (coming
soon)" is missing the required href prop; update the LinkCard component in
ensdb-readers.mdx to include an href (e.g., a placeholder route like
"/ensanalytics" or a temporary external URL) so the
`@astrojs/starlight/components` LinkCard receives a valid href, keeping the title
"ENSAnalytics" and description unchanged; ensure the href is a string literal
and points to the placeholder until the real route exists.

In
`@docs/ensnode.io/src/content/docs/docs/integrate/integration-options/ensdb-writers.mdx`:
- Line 11: The bullet under "writer responsibilities" contains a malformed
fragment "How to process onchain data into (including transforming raw onchain
data into a desired internal data model)"; replace it with a complete,
grammatical sentence such as "How to process on‑chain data, including
transforming raw on‑chain data into a desired internal data model" so the
responsibility reads clearly—update the writer responsibilities bullet in the
ENSDB writers section to use that full sentence.

In
`@docs/ensnode.io/src/content/docs/docs/integrate/integration-options/ensdb.mdx`:
- Line 14: Update the interoperability phrasing in the sentence referencing the
"ENSDb standard" so that it reads "...supports decoupling and interop with any
EnsDbReader implementation." Locate the sentence that mentions "EnsDbWriters",
"ENSDb instance" and "EnsDbReaders" and replace the fragment "interop with any
of EnsDbReaders" with "interop with any EnsDbReader implementation" to tighten
grammar and clarity.

In
`@docs/ensnode.io/src/content/docs/docs/integrate/integration-options/ensnode-plugins.mdx`:
- Line 23: In the paragraph starting with "ENSNode Plugins are the key
architectural piece..." replace both occurrences of the phrase "standards
compliant" with the hyphenated form "standards-compliant" to make the compound
adjective consistent and improve readability; update the two instances that
describe an ENSDb Writer producing a "standards-compliant ENSDb" and an ENSDb
Reader being "standards-compliant" so both are hyphenated.

In `@docs/ensnode.io/src/content/docs/docs/services/ensdb/concepts/glossary.mdx`:
- Line 70: Update the glossary sentence for ENSDb Reader to avoid "sole ENSDb
Writer" — in the ENSDb Reader definition replace "the sole [ENSDb
Writer](`#ensdb-writer`)" with either "an [ENSDb Writer](`#ensdb-writer`)" or "the
configured [ENSDb Writer](`#ensdb-writer`) for the reader context" so it aligns
with the multi-tenant model; edit the sentence in the ENSDb Reader paragraph in
glossary.mdx (the line containing "Any application that reads ENS data...")
accordingly.
- Around line 64-65: Update the broken self-link and grammar in the ENSDb
glossary sentence: change the relative link
"docs/services/ensdb/concepts/glossary#ensnode-metadata-table" to an absolute
path by adding a leading "/" (i.e.
"/docs/services/ensdb/concepts/glossary#ensnode-metadata-table") and fix the
agreement typo by replacing "instance that have" with "instance that has" in the
same paragraph referring to ENSIndexer and the ENSNode Metadata Table.

In
`@docs/ensnode.io/src/content/docs/docs/services/ensindexer/contributing/creating-a-plugin.mdx`:
- Around line 11-13: Replace the inconsistent glossary terms in this document:
change occurrences of `EnsDbWriter`, `EnsDbWriters`, and `EnsDbReaders` to the
canonical capitalized forms `ENSDb Writer`, `ENSDb Writers`, and `ENSDb Readers`
respectively so they match the rest of the docs; update both the inline mentions
and any link text (e.g., the two instances in the second paragraph and the first
sentence) while preserving existing links/URLs and surrounding punctuation.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 17b3bbe3-d245-47a9-85d0-e73061144aee

📥 Commits

Reviewing files that changed from the base of the PR and between 62fd0c9 and 2e61b46.

📒 Files selected for processing (14)
  • docs/ensnode.io/config/integrations/starlight/sidebar-topics/integrate.ts
  • docs/ensnode.io/config/integrations/starlight/sidebar-topics/services.ts
  • docs/ensnode.io/src/content/docs/docs/integrate/ensv2-readiness.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/integration-options/ensdb-readers.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/integration-options/ensdb-writers.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/integration-options/ensdb.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/integration-options/ensnode-plugins.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/integration-options/index.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/omnigraph/concepts.mdx
  • docs/ensnode.io/src/content/docs/docs/integrate/unigraph/schema-reference.mdx
  • docs/ensnode.io/src/content/docs/docs/services/ensdb/concepts/glossary.mdx
  • docs/ensnode.io/src/content/docs/docs/services/ensdb/index.mdx
  • docs/ensnode.io/src/content/docs/docs/services/ensindexer/contributing/creating-a-plugin.mdx
  • docs/ensnode.io/src/content/docs/docs/services/ensindexer/index.mdx

Comment thread docs/ensnode.io/src/content/docs/docs/integrate/integration-options/ensdb.mdx Outdated
Comment thread docs/ensnode.io/src/content/docs/docs/services/ensdb/concepts/glossary.mdx Outdated
Comment thread docs/ensnode.io/src/content/docs/docs/services/ensdb/concepts/glossary.mdx Outdated
Copilot AI review requested due to automatic review settings May 30, 2026 14:18
@vercel vercel Bot temporarily deployed to Preview – ensrainbow.io May 30, 2026 14:18 Inactive
@vercel vercel Bot temporarily deployed to Preview – admin.ensnode.io May 30, 2026 14:18 Inactive
@tk-o
Copy link
Copy Markdown
Member Author

tk-o commented May 30, 2026

@greptile review

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 14 out of 14 changed files in this pull request and generated 12 comments.

Comment thread docs/ensnode.io/src/content/docs/docs/services/ensdb/concepts/glossary.mdx Outdated
Comment thread docs/ensnode.io/src/content/docs/docs/services/ensdb/concepts/glossary.mdx Outdated
Comment thread docs/ensnode.io/src/content/docs/docs/services/ensdb/concepts/glossary.mdx Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 14 out of 14 changed files in this pull request and generated 4 comments.

Comment on lines 27 to 28
</Aside>

## What You Get
### ENSDb Reader

Any application that reads ENS data from an [ENSDb instance](#ensdb-instance) following the [ENSDb Standard](#ensdb-standard). For example, [ENSApi](#ensapi) is a reference implementation of an ENSDb Reader. Other implementations of ENSDb Readers can be built in any language, and can serve different types of APIs (GraphQL, REST, gRPC, etc.), as long as they follow the ENSDb Standard.
Any application that reads ENS data from an [ENSDb instance](#ensdb-instance) following the [ENSDb Standard](#ensdb-standard). It knows how to read state from ENSDb, including overall metadata from the sole [ENSDb Writer](#ensdb-writer) and (where relevant) data associated with the [ENSNode Plugins](#ensnode-plugin) relevant to the specific ENSDb Reader implementation. For example, [ENSApi](#ensapi) is a reference implementation of an ENSDb Reader. Other implementations of ENSDb Readers can be built in any language, and can serve different types of APIs (GraphQL, REST, gRPC, etc.), as long as they follow the ENSDb Standard.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tk-o This looks like a fair suggestion from Copilot

Comment on lines +44 to +48
<LinkCard
title="Learn more about ENSAnalytics (coming soon)"
description="A web service that provides analytics and insights on ENS data."
href="#"
/>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tk-o Please action this important feedback from Copilot.

Copy link
Copy Markdown
Member

@lightwalker-eth lightwalker-eth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tk-o Thanks. Reviewed and shared feedback

### ENSDb Writer

Any application that writes ENS data into an [ENSDb instance](#ensdb-instance) following the [ENSDb Standard](#ensdb-standard). For example, [ENSIndexer](#ensindexer) is a reference implementation of an ENSDb Writer. Other implementations of ENSDb Writers can be built in any language, and can use different indexing frameworks (i.e. [Ponder](https://ponder.sh/), [rindexer](https://rindexer.xyz/)), as long as they follow the ENSDb Standard.
Any application that implements one or more standard-compliant [ENSNode Plugins](#ensnode-plugin) and includes an [ENSDb Metadata Writer](#ensdb-metadata-writer), writing ENS data into an [ENSDb instance](#ensdb-instance) following the [ENSDb Standard](#ensdb-standard). For example, [ENSIndexer](#ensindexer) is a reference implementation of an ENSDb Writer. Other implementations of ENSDb Writers can be built in any language, and can use different indexing frameworks (i.e. [Ponder](https://ponder.sh/), [Envio](https://envio.dev/), [rindexer](https://rindexer.xyz/)), as long as they follow the ENSDb Standard.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Any application that implements one or more standard-compliant [ENSNode Plugins](#ensnode-plugin) and includes an [ENSDb Metadata Writer](#ensdb-metadata-writer), writing ENS data into an [ENSDb instance](#ensdb-instance) following the [ENSDb Standard](#ensdb-standard). For example, [ENSIndexer](#ensindexer) is a reference implementation of an ENSDb Writer. Other implementations of ENSDb Writers can be built in any language, and can use different indexing frameworks (i.e. [Ponder](https://ponder.sh/), [Envio](https://envio.dev/), [rindexer](https://rindexer.xyz/)), as long as they follow the ENSDb Standard.
Any application that implements one or more standard-compliant [ENSNode Plugins](#ensnode-plugin) and includes an [ENSDb Metadata Writer](#ensdb-metadata-writer), writing ENS data into an [ENSDb instance](#ensdb-instance) following the [ENSDb Standard](#ensdb-standard). For example, [ENSIndexer](#ensindexer) is a reference implementation of an ENSDb Writer. Other implementations of ENSDb Writers can be built in any language, and can use different indexing frameworks (i.e. [Ponder](https://ponder.sh/), [Envio](https://envio.dev/), [rindexer](https://rindexer.xyz/)), [Amp](https://ampup.sh/) from Edge & Node, etc as long as they follow the ENSDb Standard.

### ENSDb Reader

Any application that reads ENS data from an [ENSDb instance](#ensdb-instance) following the [ENSDb Standard](#ensdb-standard). For example, [ENSApi](#ensapi) is a reference implementation of an ENSDb Reader. Other implementations of ENSDb Readers can be built in any language, and can serve different types of APIs (GraphQL, REST, gRPC, etc.), as long as they follow the ENSDb Standard.
Any application that reads ENS data from an [ENSDb instance](#ensdb-instance) following the [ENSDb Standard](#ensdb-standard). It knows how to read state from ENSDb, including overall metadata from the sole [ENSDb Writer](#ensdb-writer) and (where relevant) data associated with the [ENSNode Plugins](#ensnode-plugin) relevant to the specific ENSDb Reader implementation. For example, [ENSApi](#ensapi) is a reference implementation of an ENSDb Reader. Other implementations of ENSDb Readers can be built in any language, and can serve different types of APIs (GraphQL, REST, gRPC, etc.), as long as they follow the ENSDb Standard.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tk-o This looks like a fair suggestion from Copilot

The **Unigraph** is the entire collection of these disjoint ENSv2 Namegraphs and multiple ENSv1 Nametables, combined together into a single unified data model using ENS Resolution semantics. Navigating the Unigraph from `"eth"` down to `"vitalik.eth"` and beyond looks identical regardless of whether the underlying entities are ENSv1 or ENSv2.

The [`unigraph` plugin](/docs/services/ensindexer) in ENSIndexer is what builds this unified model. The Unigraph constructs two Namegraphs, one rooted at the ENSv1 Root Registry and another rooted at the ENSv2 Root Registry. It's also where multichain coverage lives: Basenames (`.base.eth`), Lineanames (`.linea.eth`), and 3DNS names (`.box`) are all stitched into the ENSv1 Namegraph.
The `unigraph` [ENSNode plugin](/docs/integrate/integration-options/ensnode-plugins), implemented in [ENSIndexer](/docs/services/ensindexer), is what builds this unified model. The Unigraph constructs two Namegraphs, one rooted at the ENSv1 Root Registry and another rooted at the ENSv2 Root Registry. It's also where multichain coverage lives: Basenames (`.base.eth`), Lineanames (`.linea.eth`), and 3DNS names (`.box`) are all stitched into the ENSv1 Namegraph.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The `unigraph` [ENSNode plugin](/docs/integrate/integration-options/ensnode-plugins), implemented in [ENSIndexer](/docs/services/ensindexer), is what builds this unified model. The Unigraph constructs two Namegraphs, one rooted at the ENSv1 Root Registry and another rooted at the ENSv2 Root Registry. It's also where multichain coverage lives: Basenames (`.base.eth`), Lineanames (`.linea.eth`), and 3DNS names (`.box`) are all stitched into the ENSv1 Namegraph.
The `unigraph` [ENSNode plugin](/docs/integrate/integration-options/ensnode-plugins), implemented in [ENSIndexer](/docs/services/ensindexer), is what builds this unified model. The Unigraph constructs two Namegraphs, one rooted at the ENSv1 Root Registry and another rooted at the ENSv2 Root Registry. It also includes special support for unifying multiple ENSv1 Nametables across multiple chains into the unigraph, including: Basenames (`.base.eth`), Lineanames (`.linea.eth`), and 3DNS names (`.box`).

For special use cases that go beyond what the ENS Omnigraph exposes — you can query the live onchain state of both **ENSv1 and ENSv2** directly via `SQL`.

**ENSDb** is a bi-directional integration standard for any EnsDbWriter and EnsDbReader implementations to coordinate around the live unified onchain state of ENSv1 **and ENSv2** in a carefully-crafted standardized data model within a PostgreSQL database. Because ENSDb builds on Postgres, you can use _any_ language with a Postgres driver — **TypeScript**, **Python**, **Rust**, **Go**, and more.
**ENSDb** is a bi-directional integration standard for any ENSDb Writer and ENSDb Reader implementations to coordinate around the live unified onchain state of ENSv1 **and ENSv2** in a carefully-crafted standardized data model within a PostgreSQL database. Because ENSDb builds on Postgres, you can use _any_ language with a Postgres driver — **TypeScript**, **Python**, **Rust**, **Go**, and more.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
**ENSDb** is a bi-directional integration standard for any ENSDb Writer and ENSDb Reader implementations to coordinate around the live unified onchain state of ENSv1 **and ENSv2** in a carefully-crafted standardized data model within a PostgreSQL database. Because ENSDb builds on Postgres, you can use _any_ language with a Postgres driver — **TypeScript**, **Python**, **Rust**, **Go**, and more.
The bi-directional [ENSDb integration standard](/docs/services/ensdb/concepts/glossary#ensdb-standard) enables any decoupled [ENSDb Writer](/docs/integrate/integration-options/ensdb-writers) and [ENSDb Reader](/docs/integrate/integration-options/ensdb-readers) implementations to coordinate around the live unified onchain state of **ENSv1 and ENSv2** in a carefully-crafted standardized data model within a PostgreSQL database. Because ENSDb builds on Postgres, you can use _any_ language with a Postgres driver — **TypeScript**, **Python**, **Rust**, **Go**, and more.

**ENSDb** is a bi-directional integration standard for any EnsDbWriter and EnsDbReader implementations to coordinate around the live unified onchain state of ENSv1 **and ENSv2** in a carefully-crafted standardized data model within a PostgreSQL database. Because ENSDb builds on Postgres, you can use _any_ language with a Postgres driver — **TypeScript**, **Python**, **Rust**, **Go**, and more.
**ENSDb** is a bi-directional integration standard for any ENSDb Writer and ENSDb Reader implementations to coordinate around the live unified onchain state of ENSv1 **and ENSv2** in a carefully-crafted standardized data model within a PostgreSQL database. Because ENSDb builds on Postgres, you can use _any_ language with a Postgres driver — **TypeScript**, **Python**, **Rust**, **Go**, and more.

The [ENSDb standard](/docs/services/ensdb/concepts/glossary#ensdb-standard) also defines _the abstract specification_ for how [ENSDb Writers](/docs/integrate/integration-options/ensdb-writers) store their [metadata](/docs/services/ensdb/concepts/glossary#indexing-metadata-context) in an [ENSDb instance](/docs/services/ensdb/concepts/glossary#ensdb-instance) in a manner that supports decoupling and interop with any of [ENSDb Readers](/docs/integrate/integration-options/ensdb-readers).
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The [ENSDb standard](/docs/services/ensdb/concepts/glossary#ensdb-standard) also defines _the abstract specification_ for how [ENSDb Writers](/docs/integrate/integration-options/ensdb-writers) store their [metadata](/docs/services/ensdb/concepts/glossary#indexing-metadata-context) in an [ENSDb instance](/docs/services/ensdb/concepts/glossary#ensdb-instance) in a manner that supports decoupling and interop with any of [ENSDb Readers](/docs/integrate/integration-options/ensdb-readers).
The ENSDb standard also defines _the abstract specification_ for how ENSDb Writers store their [metadata](/docs/services/ensdb/concepts/glossary#indexing-metadata-context) in an [ENSDb instance](/docs/services/ensdb/concepts/glossary#ensdb-instance).


### ENSApi

ENSApi is a reference implementation of an [ENSDb Reader](/docs/services/ensdb/concepts/glossary#ensdb-reader) that includes standards-compliant web services:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
ENSApi is a reference implementation of an [ENSDb Reader](/docs/services/ensdb/concepts/glossary#ensdb-reader) that includes standards-compliant web services:
ENSApi is a reference implementation of an [ENSDb Reader](/docs/services/ensdb/concepts/glossary#ensdb-reader) that includes the following APIs:


ENSApi is a reference implementation of an [ENSDb Reader](/docs/services/ensdb/concepts/glossary#ensdb-reader) that includes standards-compliant web services:

- A standards-compliant [ENS Omnigraph GraphQL API](/docs/integrate/integration-options/omnigraph-graphql-api) on top of [ENSNode Plugins](/docs/integrate/integration-options/ensnode-plugins) such as `unigraph` and `protocol-acceleration`.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- A standards-compliant [ENS Omnigraph GraphQL API](/docs/integrate/integration-options/omnigraph-graphql-api) on top of [ENSNode Plugins](/docs/integrate/integration-options/ensnode-plugins) such as `unigraph` and `protocol-acceleration`.
- The new [ENS Omnigraph GraphQL API](/docs/integrate/integration-options/omnigraph-graphql-api) that's built on top of [ENSNode Plugins](/docs/integrate/integration-options/ensnode-plugins) such as `unigraph` and `protocol-acceleration`.

ENSApi is a reference implementation of an [ENSDb Reader](/docs/services/ensdb/concepts/glossary#ensdb-reader) that includes standards-compliant web services:

- A standards-compliant [ENS Omnigraph GraphQL API](/docs/integrate/integration-options/omnigraph-graphql-api) on top of [ENSNode Plugins](/docs/integrate/integration-options/ensnode-plugins) such as `unigraph` and `protocol-acceleration`.
- A standards-compliant [ENS Subgraph GraphQL API](/docs/integrate/ens-subgraph) on top of [ENSNode Plugins](/docs/integrate/integration-options/ensnode-plugins) such as `subgraph`, `basenames`, `lineanames`, and `threedns`.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- A standards-compliant [ENS Subgraph GraphQL API](/docs/integrate/ens-subgraph) on top of [ENSNode Plugins](/docs/integrate/integration-options/ensnode-plugins) such as `subgraph`, `basenames`, `lineanames`, and `threedns`.
- A backwards-compatible [ENS Subgraph GraphQL API](/docs/integrate/ens-subgraph) that's built on top of [ENSNode Plugins](/docs/integrate/integration-options/ensnode-plugins) such as `subgraph`, `basenames`, `lineanames`, and `threedns`.


- A standards-compliant [ENS Omnigraph GraphQL API](/docs/integrate/integration-options/omnigraph-graphql-api) on top of [ENSNode Plugins](/docs/integrate/integration-options/ensnode-plugins) such as `unigraph` and `protocol-acceleration`.
- A standards-compliant [ENS Subgraph GraphQL API](/docs/integrate/ens-subgraph) on top of [ENSNode Plugins](/docs/integrate/integration-options/ensnode-plugins) such as `subgraph`, `basenames`, `lineanames`, and `threedns`.
- An API for accessing the metadata stored in ENSDb, including [metadata](/docs/services/ensdb/concepts/glossary#indexing-metadata-context) about the indexing status from the [ENSDb Writer](/docs/services/ensdb/concepts/glossary#ensdb-writer) and [metadata](/docs/services/ensdb/concepts/glossary#indexing-metadata-context) about the overall [ENSNode stack of services](/docs/services) active in the ENSNode instance.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- An API for accessing the metadata stored in ENSDb, including [metadata](/docs/services/ensdb/concepts/glossary#indexing-metadata-context) about the indexing status from the [ENSDb Writer](/docs/services/ensdb/concepts/glossary#ensdb-writer) and [metadata](/docs/services/ensdb/concepts/glossary#indexing-metadata-context) about the overall [ENSNode stack of services](/docs/services) active in the ENSNode instance.
- APIs for various queries related to the the metadata stored in ENSDb, such as the indexing status from the [ENSDb Writer](/docs/services/ensdb/concepts/glossary#ensdb-writer) and [metadata](/docs/services/ensdb/concepts/glossary#indexing-metadata-context) about the overall [ENSNode stack of services](/docs/services) active in the ENSNode instance.


<LinkCard
title="Learn more about ENSEngine"
description="A push-based web service allowing to track ENS data changes in real-time."
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
description="A push-based web service allowing to track ENS data changes in real-time."
description="A push-based web service allowing you to track ENS data changes as they occur."

Copy link
Copy Markdown
Member

@lightwalker-eth lightwalker-eth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tk-o Thanks. Reviewed and shared feedback

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants